package com.etime.shycourse.services.interfaces;

import com.etime.shycourse.dto.OrgTeacherDtoS;
import com.etime.shycourse.dto.UserTeacherDto;
import com.etime.shycourse.pojo.SysUser;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author wb
 * @since 2021-12-14
 */
public interface SysUserService {


    /**
     * 修改用户
     * <p>
     * 1、通过列表中点击修改进入修改页面。需要带参数：教师id；
     * 2、通过教师id查询界面原型中的内容，并初始化显示到页面上；需要查询用户表和教师表（用户id和教师id隐藏在页面上，提交的时候需要提交）；
     * 3、修改完成后，点击保存提交数据；
     * 4、分别保存对应数据到用户表和教师表；
     * 5、注意：用户名不能修改。
     */
    /**
     * 修改机构教师 第一步
     * <p></p>
     *
     * @param tecId
     * @return OrgTeacherDtoS
     * 第一步 查询 通过列表中点击携带id 。
     * sysuser表 用户名 姓名* 专业* 联展电话.* Emal
     * <p>
     * teacher表 教师Tith * 技术标名 * 简介
     */
    OrgTeacherDtoS selectOrgUserTeacherById(Integer tecId);

    /**
     * 修改机构教师 第二步
     * 2022 - 01 - 21 16:09:25 更改为token
     *
     * @param orgTeacherDtoS 用户实体
     * @return 0失败；1成功
     */
    int updateOrgUserTeacher(OrgTeacherDtoS orgTeacherDtoS);

    /**
     * 根据用户id查询用户详细信息
     *
     * @param userid
     * @return
     */
    SysUser selectSysUserById(Integer userid);

    /**
     * 通过用户id 查询出用户信息
     * <p></p>
     *
     * @param userId
     * @return OrgTeacherDtoS
     * <p>
     * teacher表 教师Tith * 技术标名 * 简介
     */
    OrgTeacherDtoS selectOrgUserById(Integer userId);

    /**
     * 1 修改用户所属机构
     * 2 创建教师信息
     *
     * @param userTeacherDto 用户 教师实体
     * @return 0失败；1成功
     */
    int upUserCreateTeacher(UserTeacherDto userTeacherDto);

    /**
     * 修改教师信息
     *
     * @param userTeacherDto
     * @return 0失败；1成功
     */
    int upDataTeacher(UserTeacherDto userTeacherDto);

    /**
     * 根据用姓名模糊查询 用户信息
     *
     * @param name
     * @return SysUser
     */
    List<SysUser> selectSysUserLikeName(String name);

    /**
     * 根据条件查询用户列表
     *
     * @param user 查询条件
     * @return 用户列表
     */
    List<SysUser> selectUserList(SysUser user);
}
